home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Purity / Purity #23 (1994-02-10)(Diesel)(DE)[WB].zip / Purity #23 (1994-02-10)(Diesel)(DE)[WB].adf / Tools / ToolsUnit.DOK < prev    next >
Text File  |  1994-01-20  |  13KB  |  847 lines

  1.  
  2.  
  3.  
  4.   __________________________________________________________________
  5.  
  6.                        Anleitung zur Unit Tools
  7.   __________________________________________________________________
  8.  
  9.  
  10.  
  11. Die Unit Tools ist ©1993 by Björn Schotte ("BOMBERSOFT")
  12.  
  13. Sie ist GIFTWARE, d.h., wenn sie euch gefällt, dann könnt Ihr mir
  14. einen Obulus senden, z.B.: Geld, Postkarten aus dem Urlaub, Schokolade,
  15. PD-DisX etc.
  16.  
  17. Einige Routinen aus dieser Unit kommen von:
  18.  
  19.   - Røgersøft (Michael Klein): ThanX Michael für die tollen Prozeduren:
  20.  
  21.     gbu, uline, umrandung, zeichnetext, datum, uhrzeit, ...
  22.  
  23. Ich habe seit der Vorversion die Tool-Unit in mehrere Units aufgesplittet:
  24.  
  25.   - ArpSupport: Routinen für die Arp-Library
  26.  
  27.   - ToolTime  : Routinen für Datum und Zeit
  28.  
  29.   - ToolGad   : Routinen für GadgetBorder zeichnen etc.
  30.  
  31.   - ToolPar   : Routinen für das PAR:-Device
  32.  
  33. Diese vier Units befinden sich im Unit-Ordner MyTools (In eigenen
  34. Programmen dann einfach "FROM MyTools USES ToolGad;" einbinden !!).
  35. Das Tools-Unit integriert seinerseits alle vier Units; wer also
  36. ALLES braucht, einfach Tools einbinden und fertig !!
  37.  
  38. So, das wäre das offizielle...
  39.  
  40. And now, the documentation of the routines:
  41.  
  42. -------------------------------------
  43.  
  44. NAME
  45.  
  46.       UniPrint
  47.  
  48. SYNOPSIS
  49.  
  50.    UniPrint(win,txt,backgroundcolor,foregroundcolor,xcoord,ycoord,
  51.      shadow,center,alternative_font);
  52.  
  53.    win:^Window;
  54.    txt:STRING;
  55.    backgroundcolor,foregroundcolor,xcoord,ycoord:INTEGER;
  56.    shadow,center:BOOLEAN;
  57.    alternative_font:p_TextAttr;
  58.  
  59. ERKLÄRUNG
  60.  
  61. Gibt einen Text in einem Fenster aus. Dieser Text kann wahlweise
  62. schattiert bzw. zentriert dargestellt werden; die Vorder- und
  63. Hintergrundfarbe ist beliebig einstellbar; Bei Zentrierung kann
  64. für xcoord 0 übergeben werden, da die Koordinate ja abhängig von
  65. der Fenstergröße ist. Mit alternative_font wird ein Pointer auf
  66. eine TextAttr-Struktur übergeben (Bei einem Font, wie z.B. opal,
  67. muß dieser natürlich vorher geöffnet werden (Per OpenDiskFont) !).
  68.  
  69. -------------------------------------
  70.  
  71. NAME
  72.  
  73.       FindWBScreen
  74.  
  75. SYNOPSIS
  76.  
  77.    Scr := FindWBScreen;
  78.  
  79.    Scr:^Screen;
  80.  
  81. ERKLÄRUNG
  82.  
  83. Sucht den Workbench-Screen in der Screen-Liste.
  84.  
  85. RÜCKGABE
  86.  
  87. Zeiger auf den Workbench-Screen.
  88.  
  89. -------------------------------------
  90.  
  91. NAME
  92.  
  93.       datum
  94.  
  95. SYNOPSIS
  96.  
  97.    datum(jahr,monat,tag);
  98.  
  99.    jahr, monat, tag:LONG;
  100.  
  101. ERKLÄRUNG
  102.  
  103. Legt das Datum in die Variablen jahr, monat, tag ab.
  104.  
  105.  HINWEIS: Diese Prozedur stammt von Røgersøft !!
  106.  
  107. -------------------------------------
  108.  
  109. NAME
  110.  
  111.       uhrzeit
  112.  
  113. SYNOPSIS
  114.  
  115.    uhrzeit(std,min,sek);
  116.  
  117.    std,min,sek:BYTE;
  118.  
  119. ERKLÄRUNG
  120.  
  121. Legt die Uhrzeit in die drei Variablen ab.
  122.  
  123.  HINWEIS: Diese Prozedur stammt von Røgersøft !!
  124.  
  125. -------------------------------------
  126.  
  127. NAME
  128.  
  129.       GetRadioButtonImage
  130.  
  131. SYNOPSIS
  132.  
  133.    GetRadioButtonImage(RBImage1, RBImage2);
  134.  
  135.    RBImage1, RBImage2 : Image;
  136.  
  137. ERKLÄRUNG
  138.  
  139. Legt die Image-Daten für den Radio-Button in die Variablen
  140. ab.
  141.  
  142. -------------------------------------
  143.  
  144. NAME
  145.  
  146.       GetCheckBoxImage
  147.  
  148. SYNOPSIS
  149.  
  150.    GetCheckBoxImage(CBImage1, CBImage2);
  151.  
  152.    CBImage1,CBImage2:Image;
  153.  
  154. ERKLÄRUNG
  155.  
  156. Legt die Image-Daten für die CheckBox (neu unter OS2.X) in die
  157. Variablen ab (Nun können auch OS1.3-Benutzer in den Genuß der
  158. neuen Gadgets kommen !).
  159.  
  160. -------------------------------------
  161.  
  162. NAME
  163.  
  164.       GetCycleImage
  165.  
  166. SYNOPSIS
  167.  
  168.    GetCycleImage(CycleImage);
  169.  
  170.    CycleImage:Image;
  171.  
  172. ERKLÄRUNG
  173.  
  174. Legt die Image-Daten für das Cycle-Gadget in die Variablen ab.
  175.  
  176. -------------------------------------
  177.  
  178. NAME
  179.  
  180.       filereq
  181.  
  182. SYNOPSIS
  183.  
  184.    filereq(titel,datei,pfad:STRING);
  185.  
  186.    titel:STR;
  187.    datei,pfad:STRING; { Als Variablen übergeben !! }
  188.  
  189. ERKLÄRUNG
  190.  
  191. Öffnet den FileRequester der arp.library und retourniert das
  192. Ergebnis in -> datei.
  193.  
  194.  HINWEIS: Auch diese Prozedur stammt von Michael Klein !
  195.  
  196. -------------------------------------
  197.  
  198. NAME
  199.  
  200.       umrandung
  201.  
  202. SYNOPSIS
  203.  
  204.    umrandung(wo,c1,c2,x,y,breite,höhe);
  205.  
  206.    wo:^Window;
  207.    c1,c2,x,y,breite,höhe:INTEGER;
  208.  
  209. ERKLÄRUNG
  210.  
  211. Diese Prozedur (und die nächsten 4) dürften wohl allen bekannt sein:
  212. es sind die von Michael Klein ! Also, umrandung zeichnet einen 3D-
  213. Border im angegebenen Fenster.
  214.  
  215. -------------------------------------
  216.  
  217. NAME
  218.  
  219.       gbord
  220.  
  221. SYNOPSIS
  222.  
  223.    gbord(wo,was);
  224.  
  225.    wo:^Window;
  226.    was:^Gadget;
  227.  
  228. ERKLÄRUNG
  229.  
  230. Zeichnet einen 3D-Border zum Gadget.
  231.  
  232. -------------------------------------
  233.  
  234. NAME
  235.  
  236.       zeichnetext
  237.  
  238. SYNOPSIS
  239.  
  240.    zeichnetext(c1,c2,wo,x,y,text);
  241.  
  242.    c1,c2:SHORT;
  243.    wo:^Window;
  244.    x,y:INTEGER;
  245.    text:STRING;
  246.  
  247. ERKLÄRUNG
  248.  
  249. Zeichnet einen Text in das Window. c1 und c2 sind die Farben,
  250. x und y die Koordinaten, text der eigentliche Text. Ich persönlich
  251. finde die Prozedur gut, aber ich glaube, mein UniPrint ist viel,
  252. viel besser (zeichnetext ist eigentlich nur aus Kompatibilitäts-
  253. gründen implementiert worden !).
  254.  
  255. -------------------------------------
  256.  
  257. NAME
  258.  
  259.       uline
  260.  
  261. SYNOPSIS
  262.  
  263.    uline(wo,was,c);
  264.  
  265.    wo:^Window;
  266.    was:p_Gadget;
  267.    c:CHAR;
  268.  
  269. ERKLÄRUNG
  270.  
  271. Unterstreicht den im Gadget-Text vorkommenden Buchstaben c.
  272.  
  273. -------------------------------------
  274.  
  275. NAME
  276.  
  277.       gbu
  278.  
  279. SYNOPSIS
  280.  
  281.   gbu(wo,was,c);
  282.  
  283.   wo:^Window;
  284.   was:^Gadget;
  285.   c:CHAR;
  286.  
  287. ERKLÄRUNG
  288.  
  289. Zeichnet einen 3D-Border um das Gadget und unterstreicht den im
  290. Gadget-Text vorkommenden Buchstaben c.
  291.  
  292. -------------------------------------
  293.  
  294. NAME
  295.  
  296.       stringumrandung
  297.  
  298. SYNOPSIS
  299.  
  300.    stringumrandung(wo,gad,c1,c2);
  301.  
  302.    wo:p_Window;
  303.    gad:p_Gadget;
  304.    c1,c2:WORD;
  305.  
  306. ERKLÄRUNG
  307.  
  308. StringUmrandung (übrigens von mir) zeichnet einen String-Border
  309. um das Gadget in den Farben c1,c2 (Bei OS2.0 Farben: c1 mit 1 und
  310. c2 mit 2 übergeben !).
  311.  
  312. -------------------------------------
  313.  
  314. NAME
  315.  
  316.       OpenArp
  317.  
  318. SYNOPSIS
  319.  
  320.    Bool := OpenArp(version);
  321.  
  322.    Bool : BOOLEAN;
  323.    version : INTEGER;
  324.  
  325. ERKLÄRUNG
  326.  
  327. Versucht, die arp.library mit der übergebenen Version zu öffnen.
  328.  
  329. RÜCKGABE
  330.  
  331. Falls das Öffnen erfolgreich verlief, hat Bool den Wert TRUE, an-
  332. sonsten FALSE.
  333.  
  334. -------------------------------------
  335.  
  336. NAME
  337.  
  338.       CloseArp
  339.  
  340. SYNOPSIS
  341.  
  342.    CloseArp;
  343.  
  344. ERKLÄRUNG
  345.  
  346. Falls die arp.library schon geöffnet wurde, wird sie geschlossen.
  347.  
  348. -------------------------------------
  349.  
  350. NAME
  351.  
  352.       Exist
  353.  
  354. SYNOPSIS
  355.  
  356.    Bool := Exist(datei);
  357.  
  358.    Bool:BOOLEAN;
  359.    datei:STRING;
  360.  
  361. ERKLÄRUNG
  362.  
  363. Versucht, die angegebene Datei zu finden.
  364.  
  365. RÜCKABE
  366.  
  367. TRUE, falls die Datei gefunden werden konnte, ansonsten FALSE.
  368.  
  369. -------------------------------------
  370.  
  371. NAME
  372.  
  373.       Maus
  374.  
  375. SYNOPSIS
  376.  
  377.    Maus(MouseOnOff);
  378.  
  379.    MouseOnOff : BOOLEAN;
  380.  
  381. ERKLÄRUNG
  382.  
  383. Schaltet, je nachdem, welchen Wert MouseOnOff hat (TRUE oder FALSE),
  384. den Mauszeiger an- bzw. aus.
  385. Dies wird insofern bewerkstelligt, daß das Hardware-Register ab
  386. $DFF096 auf 32 gestellt wird (Maus aus) bzw. auf den alten Wert (Maus
  387. an).
  388.  
  389. BUGS
  390.  
  391. Funktioniert (hab`s selbst ausprobiert), bei Mausblankern nicht
  392. (bei meinem Proggy "MagicBlank" jedenfalls nicht !!) !!
  393.  
  394. -------------------------------------
  395.  
  396. NAME
  397.  
  398.       ToggleBool
  399.  
  400. SYNOPSIS
  401.  
  402.    ToggleBool(Boolsche);
  403.  
  404.    Boolsche:BOOLEAN
  405.  
  406. ERKLÄRUNG
  407.  
  408. Wechselt den Wert von Boolsche in TRUE bzw. in FALSE.
  409.  
  410. -------------------------------------
  411.  
  412. NAME
  413.  
  414.       Upper
  415.  
  416. SYNOPSIS
  417.  
  418.    Upper(MakeUpper);
  419.  
  420.    MakeUpper:STRING;
  421.  
  422. ERKLÄRUNG
  423.  
  424. Wandelt alle Buchstaben von MakeUpper in Großbuchstaben.
  425. (Beispiel: xx:="hallo"; MakeUpper(xx); Writeln(xx);
  426. [xx enthält dann: "HALLO" !!])
  427.  
  428. -------------------------------------
  429.  
  430. NAME
  431.  
  432.       RefreshGadget
  433.  
  434. SYNOPSIS
  435.  
  436.    RefreshGadget(wo,was,req);
  437.  
  438.    wo:p_Window;
  439.    was:p_Gadget;
  440.    req:p_Requester;
  441.  
  442. ERKLÄRUNG
  443.  
  444. Refresht ein einzelnes (!) Gadget auf dem jeweiligen Window im
  445. jeweiligen Requester (kein Requester -> req zeigt auf NIL).
  446.  
  447. -------------------------------------
  448.  
  449. NAME
  450.  
  451.       GetLongInt
  452.  
  453. SYNOPSIS
  454.  
  455.    Value:=GetLongInt(gad);
  456.  
  457.    Value:LONG;
  458.    gad:p_Gadget;
  459.  
  460. ERKLÄRUNG
  461.  
  462. Bringt den LongInt-Wert des Gadgets gad in Erfahrung.
  463.  
  464. RÜCKGABE
  465.  
  466. Der LongInt-Wert aus der SpecialInfo-Struktur des Gadgets.
  467.  
  468. -------------------------------------
  469.  
  470. NAME
  471.  
  472.       SetLongInt
  473.  
  474. SYNOPSIS
  475.  
  476.    SetLongInt(gad,Value);
  477.  
  478.    gad:p_Gadget;
  479.    Value:LONG;
  480.  
  481. ERKLÄRUNG
  482.  
  483. Setzt den Wert Value in die SpecialInfo-Struktur des Gadgets.
  484. Das Gadget wird nicht refreshed !!
  485.  
  486. -------------------------------------
  487.  
  488. NAME
  489.  
  490.       GetString
  491.  
  492. SYNOPSIS
  493.  
  494.    Stri := GetString(^gad);
  495.  
  496.    Stri:STRING;
  497.    gad : Gadget;
  498.  
  499. ERKLÄRUNG
  500.  
  501. Liefert den "Inhalt" eines StringGadgets.
  502.  
  503. -------------------------------------
  504.  
  505. NAME
  506.  
  507.       SetString
  508.  
  509. SYNOPSIS
  510.  
  511.    SetString(gad,Stri);
  512.  
  513.    Stri:STRING;
  514.    gad:GADGET;
  515.  
  516. ERKLÄRUNG
  517.  
  518. Setzt den Text Stri in die SpecialInfo-Struktur des StringGadgets
  519. gad ein.
  520.  
  521. -------------------------------------
  522.  
  523. NAME
  524.  
  525.       MenuNum
  526.  
  527. SYNOPSIS
  528.  
  529.    MenuNumber := MenuNum(code);
  530.  
  531.    MenuNumber:CARDINAL;
  532.    code:LONGINT;
  533.  
  534. ERKLÄRUNG
  535.  
  536. Bringt die Menü-Nummer in Erfahrung, in der ein Item bzw.
  537. SubItem angewählt wurde (ACHTUNG: Das erste Menü erhält die
  538. Nummer 0, das zweite die Nummer 1, ...).
  539. Code ist der Inhalt von der IntuiMessage (z.B.: code:=msg^.Code;
  540. MenuNumber:=MenuNum(code); <- falls msg^.Class = MENUPICK !!).
  541.  
  542.  
  543. RÜCKGABE
  544.  
  545. Die Menünummer.
  546.  
  547. -------------------------------------
  548.  
  549. NAME
  550.  
  551.       ItemNum
  552.  
  553. SYNOPSIS
  554.  
  555.    ItemNumber := ItemNum(code);
  556.  
  557.    ItemNumber:CARDINAL;
  558.    code:LONGINT;
  559.  
  560. ERKLÄRUNG
  561.  
  562. Bringt den Menüpunkt in Erfahrung. Übergeben wird der Code
  563. der IntuiMessage-Struktur.
  564.  
  565. RÜCKGABE
  566.  
  567. Nummer des Menüpunktes, der angewählt wurde.
  568.  
  569. -------------------------------------
  570.  
  571. NAME
  572.  
  573.       SubNum
  574.  
  575. SYNOPSIS
  576.  
  577.    SubItemNumber := SubNum(code);
  578.  
  579.    SubItemNumber:CARDINAL;
  580.    code:LONGINT;
  581.  
  582. ERKLÄRUNG
  583.  
  584. Bringt den Untermenüpunkt, der angewählt wurd, in Erfahrung.
  585. code: siehe oben.
  586.  
  587. RÜCKGABE
  588.  
  589. Die Nummer des Untermenüpunktes (wie bei MenuNum und ItemNum
  590. beginnt auch hier der erste Untermenüpunkt mit der Nummer 0 !!).
  591.  
  592. -------------------------------------
  593.  
  594. NAME
  595.  
  596.       Zins
  597.  
  598. SYNOPSIS
  599.  
  600.    ZinsBetrag := Zins(Kapital,Prozentsatz,Tage);
  601.  
  602.    ZinsBetrag,Kapital,Prozentsatz:REAL;
  603.    Tage:INTEGER;
  604.  
  605. ERKLÄRUNG
  606.  
  607. Rechnet den Zinsbetrag aus den übergebenen Daten aus.
  608.  
  609. RÜCKGABE
  610.  
  611. Zinsbetrag.
  612.  
  613. -------------------------------------
  614.  
  615. NAME
  616.  
  617.       Kapital
  618.  
  619. SYNOPSIS
  620.  
  621.    Das_Kapital:=Kapital(Zins,Prozentsatz,Tage);
  622.  
  623.    Das_Kapital,
  624.    Zins,
  625.    Prozentsatz : REAL;
  626.    Tage  : INTEGER;
  627.  
  628. ERKLÄRUNG
  629.  
  630. Errechnet sich das Kapital aus dem übergebenen Zins, dem
  631. Prozentsatz und der Anlegzeit in Tagen.
  632.  
  633. RÜCKGABE
  634.  
  635. Das Kapital.
  636.  
  637. -------------------------------------
  638.   FUNCTION Zinssatz(Z,K:REAL; T:INTEGER):REAL;
  639.  
  640. NAME
  641.  
  642.       Zinssatz
  643.  
  644. SYNOPSIS
  645.  
  646.    Prozentsatz := Zinssatz(Zins,Kapital,Tage);
  647.  
  648.    Prozentsatz,
  649.    Zins,
  650.    Kapital : REAL;
  651.    Tage  : INTEGER;
  652.  
  653. ERKLÄRUNG
  654.  
  655. Errechnet sich aus den übergebenen Daten den Prozentsatz.
  656.  
  657. RÜCKGABE
  658.  
  659. Der Prozentsatz (z.B. 7.5 [%]).
  660.  
  661. -------------------------------------
  662.  
  663. NAME
  664.  
  665.       Tage
  666.  
  667. SYNOPSIS
  668.  
  669.    Anzahl_Der_Tage := Tage(Zins,Kapital,Prozent);
  670.  
  671.    Anzahl_Der_Tage : INTEGER;
  672.    Zins,
  673.    Kapital,
  674.    Prozent    : REAL;
  675.  
  676. ERKLKÄRUNG
  677.  
  678. Errechnet sich die Anzahl der Tage.
  679.  
  680. RÜCKGABE
  681.  
  682. Die Tage.
  683.  
  684. -------------------------------------
  685.  
  686. NAME
  687.  
  688.       ggT
  689.  
  690. SYNOPSIS
  691.  
  692.    Größter_Gemeinsamer_Teiler := ggT(Zahl_A,Zahl_B);
  693.  
  694.    Größter_Gemeinsamer_Teiler,
  695.    Zahl_A,
  696.    Zahl_B   : LONG;
  697.  
  698. ERKLÄRUNG
  699.  
  700. Berechnet den größten gemeinsamen Teiler zweier Zahlen.
  701.  
  702. RÜCKGABE
  703.  
  704. Der größte gemeinsame Teiler.
  705.  
  706. -------------------------------------
  707.  
  708. NAME
  709.  
  710.       kgV
  711.  
  712. SYNOPSIS
  713.  
  714.    k_g_V := kgV(a,b);
  715.  
  716.    k_g_V,a,b:LONG;
  717.  
  718. ERKLÄRUNG
  719.  
  720. Berechnet das kleinste gemeinsame Vielfache zweier Zahlen.
  721.  
  722. RÜCKGABE
  723.  
  724. Das kleinste gemeinsame Vielfache.
  725.  
  726. -------------------------------------
  727.  
  728. NAME
  729.  
  730.       Potenz
  731.  
  732. SYNOPSIS
  733.  
  734.       Pot := Potenz(argument, hoch)
  735.  
  736.       Pot,argument,hoch:REAL;
  737.  
  738. ERKLÄRUNG
  739.  
  740. Da es in Pascal keine Funktion zur Potenz zweier Zahlen gibt,
  741. hier ist eine: Beispiel für eine Potenz: 3³ (3 hoch 3).
  742.  
  743. RÜCKGABE
  744.  
  745. Die Potenz (im Beispiel: 27)
  746.  
  747. -------------------------------------
  748.  
  749. NAME
  750.  
  751.       SetLRand
  752.  
  753. SYNOPSIS
  754.  
  755.    SetLRand(VAR lst,LRand);
  756.  
  757.    lst : Text;
  758.    LRand: INTEGER;
  759.  
  760. ERKLÄRUNG
  761.  
  762. Setzt beim PAR:-Device den linken Rand. Übergeben wird die
  763. Text-Variable, mit der per ReWrite(lst,"PAR:"); das Device
  764. geöffnet wird, und den linken Rand.
  765.  
  766. -------------------------------------
  767.  
  768. NAME
  769.  
  770.        SetRRand
  771.  
  772. SYNOPSIS
  773.  
  774.    SetRRand(VAR lst,RRand);
  775.  
  776.    lst : Text;
  777.    RRand : INTEGER;
  778.  
  779. ERKLÄRUNG
  780.  
  781. Setzt den rechten Rand.
  782.  
  783. -------------------------------------
  784.  
  785. NAME
  786.  
  787.        SetAbstand
  788.  
  789. SYNOPSIS
  790.  
  791.    SetAbstand(VAR lst, Abstand);
  792.  
  793.    lst : Text;
  794.    Abstand : 0..2;
  795.  
  796. ERKLÄRUNG
  797.  
  798. Setzt den Zeilenabstand: Abstand 0: Zeilenabstand 1/8 Zoll
  799.                          Abstand 1: Zeilenabstand 7/72 Zoll
  800.                          Abstand 2: Zeilenabstand 1/6 Zoll
  801.  
  802. -------------------------------------
  803.  
  804. NAME
  805.  
  806.        PapierendeSensor
  807.  
  808. SYNOPSIS
  809.  
  810.    PapierEndeSensor(bool);
  811.  
  812.    bool : BOOLEAN;
  813.  
  814. ERKLÄRUNG:
  815.  
  816.   bool := TRUE  -> PapierendeSensor wird aktiviert
  817.   bool := FALSE -> PapierendeSensor wird deaktiviert
  818.  
  819. -------------------------------------
  820.  
  821. NAME
  822.  
  823.        Initialisize
  824.  
  825. SYNOPSIS
  826.  
  827.    Initialisize(VAR lst);
  828.  
  829.    lst : Text;
  830.  
  831. ERKLÄRUNG
  832.  
  833. Initialisiert den Drucker.
  834.  
  835. -------------------------------------
  836.  
  837. Ende ...
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.